package br.com.scv.logicImp;

import java.util.ArrayList;
import java.util.List;

import br.com.scv.dao.VeiculoDao;
import br.com.scv.daoImp.VeiculoDaoImp;
import br.com.scv.exception.DAOException;
import br.com.scv.exception.RNException;
import br.com.scv.logic.VeiculoLogic;
import br.com.scv.model.Veiculo;

public class VeiculoLogicImp implements VeiculoLogic {

	private VeiculoDao dao;
	
	@Override
	public void salvar(Veiculo veiculo) throws RNException {
		if(veiculo.getModelo() == null | veiculo.getModelo().equals("")){
			throw new RNException("Favor informar o Modelo!");
		}else if (veiculo.getPlaca() == null | veiculo.getPlaca().equals("")) {
			throw new RNException("Favor informar a Placa!");
		}else if (veiculo.getPorta() == null | veiculo.getPorta().equals("")) {
			throw new RNException("Favor informar o numero de Portas!");
		}else if (veiculo.getTitular() == null | veiculo.getTitular().equals("")) {
			throw new RNException("Favor informar Titular!");
		}else{
			dao = new VeiculoDaoImp();
			try {
				dao.salvar(veiculo);
			} catch (DAOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}

	}

	@Override
	public void editar(Veiculo veiculo) throws RNException {
		dao = new VeiculoDaoImp();
		try {
			dao.editar(veiculo);
		} catch (DAOException e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		

	}

	@Override
	public void excluir(Veiculo veiculo) throws RNException {
		dao = new VeiculoDaoImp();
		try {
			dao.excluir(veiculo);
		} catch (DAOException e) {
			// TODO: handle exception
			e.printStackTrace();
		}

	}

	@Override
	public List<Veiculo> listar() throws RNException {
		dao = new VeiculoDaoImp();
		List<Veiculo> veiculos = new ArrayList<Veiculo>();
		try {
			veiculos = dao.listar();
		} catch (DAOException e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		return veiculos;
	}

	@Override
	public List<Veiculo> listarUnico(String veiculo) throws RNException {
		// TODO Auto-generated method stub
		return null;
	}

}
